package com.coder.rental.config;

import com.coder.rental.utils.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 全局异常处理类
 * 用于捕获全局异常并返回统一的错误响应
 */
@RestControllerAdvice
@Slf4j
public class GlobalException {
    /**
     * 全局异常处理方法
     * 捕获所有未处理的异常，记录错误日志，并返回错误响应
     *
     * @param e 异常对象
     * @return 返回包含错误信息的响应对象
     */
    @ExceptionHandler(value = Exception.class)
    public Result handleException(Exception e){
        // 记录异常错误日志
        log.error("异常信息:{}",e.getMessage());
        e.printStackTrace();
        // 返回错误响应，包含异常信息
        return Result.fail().setMessage(e.getMessage());
    }
}
